Non-volatile memory systems retain stored information without requiring an external power source. One type of non-volatile memory that is used ubiquitously throughout various computing devices and in stand-alone memory devices is flash memory. For example, flash memory can be found in a laptop, a digital audio player, a digital camera, a smart phone, a video game, a scientific instrument, an industrial robot, medical electronics, a solid state drive, and a USB drive.
Flash memory can experience various failure modes caused by various issues rooted either in the hardware or software configuration of the flash memory. Some failures can be corrected with error correction code, while other type of errors, such as those caused by shorts, are more difficult to correct. Indeed, some types of failures progressively continue to get worse as the flash memory ages.